//*****************************************************************************
// JFab (http://code.google.com/p/jfab)
// Copyright (c) 2011 JFab.org
// Admin jfab@jeffreythompson.net
//
// See the file "LICENSE.txt" for information on usage and redistribution of
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
//*****************************************************************************

package org.jfab.core;

import org.jfab.core.inflator.CGSpecInflator;
import org.jfab.core.io.WriterGroup;

/**
 * Defines methods required by a factory injector.
 */
public interface Injector
{
    /**
     * @return a new code generator specification inflator.
     */
    CGSpecInflator injectCGSpecInflator();

    /**
     * @return a new JFabber.
     */
    JFabber injectJFabber();

    /**
     * @return a new writer group.
     */
    WriterGroup injectWriterGroup();
}
